package gz.metro.datasync.iservice;

import gz.metro.datasync.entity.form.SyncLogForm;
import gz.metro.datasync.utils.Result;
import gz.metro.datasync.utils.page.PageQueryRequest;
import gz.metro.datasync.utils.page.PagerVO;

/**
 * @author chenwx
 * @description 数据同步业务服务接口
 * @createTime 2019-11-25 10:06
 */
public interface IDatasyncService {

    /**
     * 执行组织全量同步
     * @return 同步结果
     */
    Result execOrgFullSync();

    /**
     * 执行组织增量同步
     * @return 同步结果
     */
    Result execOrgIncSync();

    /**
     * 执行用户全量同步
     * @return 同步结果
     */
    Result execUserFullSync();

    /**
     * 执行用户增量同步
     * @return 同步结果
     */
    Result execUserIncSync();

    /**
     * 分页查询同步日志
     * @param pageQueryRequest
     * @param params
     * @return
     */
    Result<PagerVO<SyncLogForm>> pageQuerySyncLog(PageQueryRequest pageQueryRequest);
}
